Variables:

Risk
Money
Security
Good time Help Success Proper Environment Tradition Creativity

Friends important Family important Leisure time Happiness Health (subjective) Satisfaction Freedom

Sex Age Country Wave Marital status Children Employment Education

library(data.table)
library(tidyr)

#read the data (Wave 5)

# Data of Wave 5


WV5_data <- readRDS("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/F00007944-WV5_Data_R_v20180912.rds")


# Convert WV5_data-object in data.frame 
WV5_data_df <- as.data.frame(WV5_data)

# show first five columns
head(WV5_data_df[, 1:5])

clean the data set

library(dplyr)

#rename the variables
WV5_data <- WV5_data_df %>%
  rename(sex = V235, age = V237, country = V2, wave = V1, family_important = V4, friends_important = V5, leisure_time = V6, happiness = V10, health = V11, satisfaction = V22, freedom = V46, marital_status = V55, children = V56, creativity = V80, money = V81, security = V82, goodtime = V83, help = V84, success = V85, risk = V86, proper = V87, environment = V88, tradition = V89, employment = V241, education = V238)
WV5_data


#select only the variables of interest
WV5_data <- WV5_data %>%
  select(sex, age, country, wave, family_important, friends_important, leisure_time, happiness, health, satisfaction, freedom, marital_status, children, creativity, money, security, goodtime, help, success, risk, proper, environment, tradition, employment, education)
WV5_data
#decode the country names 
countrynames = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countrynames.txt", header=FALSE,as.is=TRUE)
colnames(countrynames) = c("code", "name")
WV5_data$country_lab = countrynames$name [match(WV5_data$country, countrynames$code)]
table(WV5_data$country_lab)

            Andorra           Argentina           Australia              Brazil            Bulgaria        Burkina Faso 
               1003                1002                1421                1500                1001                1534 
             Canada               Chile               China            Colombia          Cyprus (G)               Egypt 
               2164                1000                1991                3025                1050                3051 
           Ethiopia             Finland              France             Georgia             Germany               Ghana 
               1500                1014                1001                1500                2064                1534 
      Great Britain           Guatemala           Hong Kong             Hungary               India           Indonesia 
               1041                1000                1252                1007                2001                2015 
               Iran                Iraq               Italy               Japan              Jordan            Malaysia 
               2667                2701                1012                1096                1200                1201 
               Mali              Mexico             Moldova             Morocco         Netherlands         New Zealand 
               1534                1560                1046                1200                1050                 954 
             Norway                Peru              Poland             Romania              Russia              Rwanda 
               1025                1500                1000                1776                2033                1507 
           Slovenia        South Africa         South Korea               Spain              Sweden         Switzerland 
               1037                2988                1200                1200                1003                1241 
             Taiwan            Thailand Trinidad and Tobago              Turkey             Ukraine       United States 
               1227                1534                1002                1346                1000                1249 
            Uruguay            Viet Nam              Zambia 
               1000                1495                1500 
WV5_data
NA
NA

#Read Dataset (Wave 6)

WV6_data <- load("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/WV6_Data_R_v20201117.rdata") 
WV6_data <- WV6_Data_R_v20201117 
print(WV6_data)

` ``{r} #rename variables

WV6_data <- WV6_data %>%
  rename(wave = V1, sex = V240, age = V242,country = V2, marital_status = V57, children = V58, employment = V229, education = V248, risk = V76, money = V71, security = V72, goodtime =  V73, help = V74B, success = V75, proper = V77, environment = V78, tradition = V79, creativity = V70, family_important = V4, friends_important = V5, leisure_time = V6, happiness = V10, health = V11, satisfaction = V23, freedom = V55 )


#select only the variables of interest
WV6_data <- WV6_data %>%
  select(wave, sex, age, country, sex, marital_status, children, employment, education, risk, money, security, goodtime, help, success, proper, environment, tradition, creativity, family_important, friends_important, leisure_time, happiness, health, satisfaction, freedom)
WV6_data
NA

#decode daraset (Wave 6)

countrynames = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countrynames.txt", header=FALSE,as.is=TRUE)
colnames(countrynames) = c("code", "name")
WV6_data$country_lab = countrynames$name [match(WV6_data$country, countrynames$code)]
table(WV6_data$country_lab)

            Algeria           Argentina             Armenia           Australia          Azerbaijan             Belarus 
               1200                1030                1100                1477                1002                1535 
             Brazil               Chile               China            Colombia          Cyprus (G)             Ecuador 
               1486                1000                2300                1512                1000                1202 
              Egypt             Estonia             Georgia             Germany               Ghana               Haiti 
               1523                1533                1202                2046                1552                1996 
          Hong Kong               India                Iraq               Japan              Jordan          Kazakhstan 
               1000                4078                1200                2443                1200                1500 
             Kuwait          Kyrgyzstan             Lebanon               Libya            Malaysia              Mexico 
               1303                1500                1200                2131                1300                2000 
            Morocco         Netherlands         New Zealand             Nigeria            Pakistan           Palestine 
               1200                1902                 841                1759                1200                1000 
               Peru         Philippines              Poland               Qatar             Romania              Russia 
               1210                1200                 966                1060                1503                2500 
             Rwanda           Singapore            Slovenia        South Africa         South Korea               Spain 
               1527                1972                1069                3531                1200                1189 
             Sweden              Taiwan            Thailand Trinidad and Tobago             Tunisia              Turkey 
               1206                1238                1200                 999                1205                1605 
            Ukraine       United States             Uruguay          Uzbekistan               Yemen            Zimbabwe 
               1500                2232                1000                1500                1000                1500 
WV6_data

#combine the 2 dataset (Wave 6 + Wave 5)

WV5_data
WV6_data
data = rbind(WV5_data, WV6_data)
data

#number of countries

length(unique(data$country_lab))
[1] 80

#number of participants

nrow(data)
[1] 173540

#exclusion of participants

data = subset(data, risk > 0 & sex > 0 & age > 0 & education > 0 & employment > 0 & marital_status > 0 & children >= 0 & family_important > 0 & friends_important > 0 & leisure_time > 0 & happiness > 0 & health > 0 & satisfaction > 0 & freedom > 0 & marital_status > 0 & creativity > 0 & money > 0 & security > 0 & goodtime >0 & help > 0 & success > 0, risk > 0 & proper > 0 & environment > 0 & tradition > 0 & employment > 0 & education > 0) 

 

data

#number of males vs females (1 = males; 2 = females)

table(data$sex)

    1     2 
47262 50079 
#create a categorical age variable
data$agecat[data$age<20]="15-19"
data$agecat[data$age>=20 & data$age <30] = "20-29"
data$agecat[data$age>=30 & data$age <40] = "30-39"
data$agecat[data$age>=40 & data$age <50] = "40-49"
data$agecat[data$age>=50 & data$age <60] = "50-59"
data$agecat[data$age>=60 & data$age <70] = "60-69"
data$agecat[data$age>=70 & data$age <80] = "70-79"
data$agecat[data$age>=80] = "80+"

#gender variables

data$sex[data$sex == 1] <- "male"
data$sex[data$sex == 2] <- "female"

#average age of participants
mean(data$age)
[1] 40.93906

#education variables

attach(data)
data$education_cat[education < 3] = "incomplete or no primary education"
data$education_cat[education > 2 & education <= 6] <- "no uni"
data$education_cat[education >= 7] <- "uni"
detach(data)
table(data$education)
data

#wave variables

data$wave[data$wave == 5] <- "Wave 5"
data$wave[data$wave == 6] <- "Wave 6"
data

#age range

range(data$age) 
[1] 15 99

#risk taking Frequency

library(ggplot2)
ggplot(data, aes(x = risk)) +
  geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black") +
  labs(x = "Risk Taking", y = "Frequency", title = "Histogram of Risk Taking") +
  theme_minimal()

#age frequency

ggplot(data, aes(x = age)) +
  geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black") +
  labs(x = "Age", y = "Frequency", title = "Histogram of Age Distributionn") +
  theme_minimal()

#age vs risk taking


ggplot(data, aes(x = agecat, y = risk)) +
  geom_boxplot() +
  labs(title = "Boxplot of Risk and Adventure by Age",
       x = "Age",
       y = "Risk and Adventure") +
  theme_minimal()

NA
NA

#sex vs risk taking

ggplot(data, aes(as.factor(sex), risk))+
  geom_boxplot()

#descriptive data 
summary(data)
     sex                 age           country           wave       family_important friends_important  leisure_time  
 Length:97341       Min.   :15.00   Min.   : 12.0   Min.   :5.000   Min.   :1.000    Min.   :1.000     Min.   :1.000  
 Class :character   1st Qu.:27.00   1st Qu.:268.0   1st Qu.:5.000   1st Qu.:1.000    1st Qu.:1.000     1st Qu.:1.000  
 Mode  :character   Median :39.00   Median :458.0   Median :5.000   Median :1.000    Median :2.000     Median :2.000  
                    Mean   :40.94   Mean   :475.8   Mean   :5.366   Mean   :1.103    Mean   :1.658     Mean   :1.911  
                    3rd Qu.:52.00   3rd Qu.:710.0   3rd Qu.:6.000   3rd Qu.:1.000    3rd Qu.:2.000     3rd Qu.:2.000  
                    Max.   :99.00   Max.   :894.0   Max.   :6.000   Max.   :4.000    Max.   :4.000     Max.   :4.000  
                                                                                                                      
   happiness         health       satisfaction       freedom       marital_status     children       creativity        money      
 Min.   :1.000   Min.   :1.000   Min.   : 1.000   Min.   : 1.000   Min.   :1.000   Min.   :0.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:1.000   1st Qu.:1.000   1st Qu.: 5.000   1st Qu.: 6.000   1st Qu.:1.000   1st Qu.:0.000   1st Qu.:2.000   1st Qu.:3.000  
 Median :2.000   Median :2.000   Median : 7.000   Median : 7.000   Median :1.000   Median :2.000   Median :3.000   Median :4.000  
 Mean   :1.905   Mean   :2.093   Mean   : 6.767   Mean   : 7.023   Mean   :2.772   Mean   :1.814   Mean   :2.734   Mean   :3.861  
 3rd Qu.:2.000   3rd Qu.:3.000   3rd Qu.: 8.000   3rd Qu.: 9.000   3rd Qu.:6.000   3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:5.000  
 Max.   :4.000   Max.   :5.000   Max.   :10.000   Max.   :10.000   Max.   :6.000   Max.   :8.000   Max.   :6.000   Max.   :6.000  
                                                                                                                                  
    security        goodtime          help          success           risk           proper        environment       tradition     
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :-5.000   Min.   :-5.000   Min.   :-5.000  
 1st Qu.:1.000   1st Qu.:2.000   1st Qu.:1.000   1st Qu.:2.000   1st Qu.:3.000   1st Qu.: 1.000   1st Qu.: 2.000   1st Qu.: 1.000  
 Median :2.000   Median :3.000   Median :2.000   Median :3.000   Median :4.000   Median : 2.000   Median : 2.000   Median : 2.000  
 Mean   :2.378   Mean   :3.247   Mean   :2.298   Mean   :2.957   Mean   :3.816   Mean   : 2.551   Mean   : 2.467   Mean   : 2.523  
 3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:5.000   3rd Qu.: 3.000   3rd Qu.: 3.000   3rd Qu.: 3.000  
 Max.   :6.000   Max.   :6.000   Max.   :6.000   Max.   :6.000   Max.   :6.000   Max.   : 6.000   Max.   : 6.000   Max.   : 6.000  
                                                                                 NA's   :136      NA's   :114      NA's   :131     
   employment      education     country_lab           agecat         
 Min.   :1.000   Min.   :1.000   Length:97341       Length:97341      
 1st Qu.:1.000   1st Qu.:3.000   Class :character   Class :character  
 Median :3.000   Median :5.000   Mode  :character   Mode  :character  
 Mean   :3.448   Mean   :5.353                                        
 3rd Qu.:5.000   3rd Qu.:7.000                                        
 Max.   :8.000   Max.   :9.000                                        
                                                                      
#data cleaning: deletion of NAs 
data = na.omit(data)
summary(data)
     sex                 age           country           wave       family_important friends_important  leisure_time  
 Length:96034       Min.   :15.00   Min.   : 12.0   Min.   :5.000   Min.   :1.000    Min.   :1.00      Min.   :1.000  
 Class :character   1st Qu.:27.00   1st Qu.:268.0   1st Qu.:5.000   1st Qu.:1.000    1st Qu.:1.00      1st Qu.:1.000  
 Mode  :character   Median :39.00   Median :458.0   Median :5.000   Median :1.000    Median :2.00      Median :2.000  
                    Mean   :40.92   Mean   :473.7   Mean   :5.367   Mean   :1.103    Mean   :1.66      Mean   :1.912  
                    3rd Qu.:52.00   3rd Qu.:710.0   3rd Qu.:6.000   3rd Qu.:1.000    3rd Qu.:2.00      3rd Qu.:2.000  
                    Max.   :99.00   Max.   :894.0   Max.   :6.000   Max.   :4.000    Max.   :4.00      Max.   :4.000  
   happiness         health      satisfaction       freedom       marital_status     children       creativity        money      
 Min.   :1.000   Min.   :1.00   Min.   : 1.000   Min.   : 1.000   Min.   :1.000   Min.   :0.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:1.000   1st Qu.:1.00   1st Qu.: 5.000   1st Qu.: 6.000   1st Qu.:1.000   1st Qu.:0.000   1st Qu.:2.000   1st Qu.:3.000  
 Median :2.000   Median :2.00   Median : 7.000   Median : 7.000   Median :1.000   Median :2.000   Median :2.000   Median :4.000  
 Mean   :1.901   Mean   :2.09   Mean   : 6.775   Mean   : 7.029   Mean   :2.775   Mean   :1.818   Mean   :2.727   Mean   :3.861  
 3rd Qu.:2.000   3rd Qu.:3.00   3rd Qu.: 8.000   3rd Qu.: 9.000   3rd Qu.:6.000   3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:5.000  
 Max.   :4.000   Max.   :5.00   Max.   :10.000   Max.   :10.000   Max.   :6.000   Max.   :8.000   Max.   :6.000   Max.   :6.000  
    security        goodtime          help          success           risk           proper        environment       tradition     
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :-5.000   Min.   :-5.000   Min.   :-5.000  
 1st Qu.:1.000   1st Qu.:2.000   1st Qu.:1.000   1st Qu.:2.000   1st Qu.:3.000   1st Qu.: 1.000   1st Qu.: 2.000   1st Qu.: 1.000  
 Median :2.000   Median :3.000   Median :2.000   Median :3.000   Median :4.000   Median : 2.000   Median : 2.000   Median : 2.000  
 Mean   :2.372   Mean   :3.242   Mean   :2.291   Mean   :2.952   Mean   :3.814   Mean   : 2.546   Mean   : 2.462   Mean   : 2.522  
 3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:5.000   3rd Qu.: 3.000   3rd Qu.: 3.000   3rd Qu.: 3.000  
 Max.   :6.000   Max.   :6.000   Max.   :6.000   Max.   :6.000   Max.   :6.000   Max.   : 6.000   Max.   : 6.000   Max.   : 6.000  
   employment      education     country_lab           agecat         
 Min.   :1.000   Min.   :1.000   Length:96034       Length:96034      
 1st Qu.:1.000   1st Qu.:3.000   Class :character   Class :character  
 Median :3.000   Median :5.000   Mode  :character   Mode  :character  
 Mean   :3.451   Mean   :5.351                                        
 3rd Qu.:5.000   3rd Qu.:7.000                                        
 Max.   :8.000   Max.   :9.000                                        
#risk vs education
ggplot(data, aes(risk, education))+
  geom_point()+
  geom_smooth(method = "lm")


model = lm(risk ~ education, data = data)
summary(model)

Call:
lm(formula = risk ~ education, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0407 -1.0407  0.1681  1.2725  2.3769 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  4.09288    0.01225   334.1   <2e-16 ***
education   -0.05219    0.00208   -25.1   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.586 on 96032 degrees of freedom
Multiple R-squared:  0.006516,  Adjusted R-squared:  0.006506 
F-statistic: 629.8 on 1 and 96032 DF,  p-value: < 2.2e-16
ggplot(data, aes(risk, freedom))+
  geom_point()+
  geom_smooth(method = "lm")


model1 = lm(risk ~ freedom, data = data)
summary(model1)

Call:
lm(formula = risk ~ freedom, data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-3.107 -1.107  0.185  1.234  2.331 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  4.155560   0.016745  248.17   <2e-16 ***
freedom     -0.048652   0.002268  -21.45   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.588 on 96032 degrees of freedom
Multiple R-squared:  0.004769,  Adjusted R-squared:  0.004759 
F-statistic: 460.2 on 1 and 96032 DF,  p-value: < 2.2e-16
#risk distribution according to Waves 5 and 6 
ggplot(data, aes(as.factor(wave), risk))+
  geom_boxplot()

ggplot(data, aes(risk, age))+
  geom_point()+
  geom_smooth(method = "lm")

data1 <- subset(data, country_lab %in% c("Andorra", "Romania", "Spain"))

ggplot(data1, aes(as.factor(country_lab), risk))+
  geom_boxplot()

ggplot(data, aes(happiness, risk, color = as.factor(sex)))+
  geom_point()+
  geom_smooth(method = "lm", se = TRUE)

ggplot(data, aes(happiness, risk, color = as.factor(agecat)))+
  geom_point()+
  geom_smooth(method = "lm", se = TRUE)

```

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpWYXJpYWJsZXM6IAoKUmlzayAgICAgICAgICAgICAgICAgIApNb25leSAgICAgICAgICAgICAgICAKU2VjdXJpdHkgICAgICAKR29vZCB0aW1lIApIZWxwIApTdWNjZXNzIApQcm9wZXIKRW52aXJvbm1lbnQgClRyYWRpdGlvbgpDcmVhdGl2aXR5IAoKRnJpZW5kcyBpbXBvcnRhbnQgCkZhbWlseSBpbXBvcnRhbnQgCkxlaXN1cmUgdGltZQpIYXBwaW5lc3MgCkhlYWx0aCAoc3ViamVjdGl2ZSkKU2F0aXNmYWN0aW9uCkZyZWVkb20gCgpTZXgKQWdlIApDb3VudHJ5CldhdmUKTWFyaXRhbCBzdGF0dXMKQ2hpbGRyZW4gCkVtcGxveW1lbnQKRWR1Y2F0aW9uCgoKYGBge3J9CmxpYnJhcnkoZGF0YS50YWJsZSkKbGlicmFyeSh0aWR5cikKYGBgCgojcmVhZCB0aGUgZGF0YSAoV2F2ZSA1KQpgYGB7cn0KIyBEYXRhIG9mIFdhdmUgNQoKCldWNV9kYXRhIDwtIHJlYWRSRFMoIi9Vc2Vycy9jcmlzdGluYWNhbmRpZG8vRG9jdW1lbnRzL0dpdGh1Yi9yaXNrX3d2cy9kYXRhL1dWUy9GMDAwMDc5NDQtV1Y1X0RhdGFfUl92MjAxODA5MTIucmRzIikKCgojIENvbnZlcnQgV1Y1X2RhdGEtb2JqZWN0IGluIGRhdGEuZnJhbWUgCldWNV9kYXRhX2RmIDwtIGFzLmRhdGEuZnJhbWUoV1Y1X2RhdGEpCgojIHNob3cgZmlyc3QgZml2ZSBjb2x1bW5zCmhlYWQoV1Y1X2RhdGFfZGZbLCAxOjVdKQpgYGAKCiMgY2xlYW4gdGhlIGRhdGEgc2V0CmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQoKI3JlbmFtZSB0aGUgdmFyaWFibGVzCldWNV9kYXRhIDwtIFdWNV9kYXRhX2RmICU+JQogIHJlbmFtZShzZXggPSBWMjM1LCBhZ2UgPSBWMjM3LCBjb3VudHJ5ID0gVjIsIHdhdmUgPSBWMSwgZmFtaWx5X2ltcG9ydGFudCA9IFY0LCBmcmllbmRzX2ltcG9ydGFudCA9IFY1LCBsZWlzdXJlX3RpbWUgPSBWNiwgaGFwcGluZXNzID0gVjEwLCBoZWFsdGggPSBWMTEsIHNhdGlzZmFjdGlvbiA9IFYyMiwgZnJlZWRvbSA9IFY0NiwgbWFyaXRhbF9zdGF0dXMgPSBWNTUsIGNoaWxkcmVuID0gVjU2LCBjcmVhdGl2aXR5ID0gVjgwLCBtb25leSA9IFY4MSwgc2VjdXJpdHkgPSBWODIsIGdvb2R0aW1lID0gVjgzLCBoZWxwID0gVjg0LCBzdWNjZXNzID0gVjg1LCByaXNrID0gVjg2LCBwcm9wZXIgPSBWODcsIGVudmlyb25tZW50ID0gVjg4LCB0cmFkaXRpb24gPSBWODksIGVtcGxveW1lbnQgPSBWMjQxLCBlZHVjYXRpb24gPSBWMjM4KQpXVjVfZGF0YQoKCiNzZWxlY3Qgb25seSB0aGUgdmFyaWFibGVzIG9mIGludGVyZXN0CldWNV9kYXRhIDwtIFdWNV9kYXRhICU+JQogIHNlbGVjdChzZXgsIGFnZSwgY291bnRyeSwgd2F2ZSwgZmFtaWx5X2ltcG9ydGFudCwgZnJpZW5kc19pbXBvcnRhbnQsIGxlaXN1cmVfdGltZSwgaGFwcGluZXNzLCBoZWFsdGgsIHNhdGlzZmFjdGlvbiwgZnJlZWRvbSwgbWFyaXRhbF9zdGF0dXMsIGNoaWxkcmVuLCBjcmVhdGl2aXR5LCBtb25leSwgc2VjdXJpdHksIGdvb2R0aW1lLCBoZWxwLCBzdWNjZXNzLCByaXNrLCBwcm9wZXIsIGVudmlyb25tZW50LCB0cmFkaXRpb24sIGVtcGxveW1lbnQsIGVkdWNhdGlvbikKV1Y1X2RhdGEKYGBgCgpgYGB7cn0KI2RlY29kZSB0aGUgY291bnRyeSBuYW1lcyAKY291bnRyeW5hbWVzID0gcmVhZC5jc3YoIi9Vc2Vycy9jcmlzdGluYWNhbmRpZG8vRG9jdW1lbnRzL0dpdGh1Yi9yaXNrX3d2cy9kYXRhL1dWUy9jb3VudHJ5bmFtZXMudHh0IiwgaGVhZGVyPUZBTFNFLGFzLmlzPVRSVUUpCmNvbG5hbWVzKGNvdW50cnluYW1lcykgPSBjKCJjb2RlIiwgIm5hbWUiKQpXVjVfZGF0YSRjb3VudHJ5X2xhYiA9IGNvdW50cnluYW1lcyRuYW1lIFttYXRjaChXVjVfZGF0YSRjb3VudHJ5LCBjb3VudHJ5bmFtZXMkY29kZSldCnRhYmxlKFdWNV9kYXRhJGNvdW50cnlfbGFiKQpXVjVfZGF0YQoKCmBgYAoKI1JlYWQgRGF0YXNldCAoV2F2ZSA2KQpgYGB7cn0KV1Y2X2RhdGEgPC0gbG9hZCgiL1VzZXJzL2NyaXN0aW5hY2FuZGlkby9Eb2N1bWVudHMvR2l0aHViL3Jpc2tfd3ZzL2RhdGEvV1ZTL1dWNl9EYXRhX1JfdjIwMjAxMTE3LnJkYXRhIikgCldWNl9kYXRhIDwtIFdWNl9EYXRhX1JfdjIwMjAxMTE3IApwcmludChXVjZfZGF0YSkKYGBgCmAKYGB7cn0KI3JlbmFtZSB2YXJpYWJsZXMKYGBge3J9CldWNl9kYXRhIDwtIFdWNl9kYXRhICU+JQogIHJlbmFtZSh3YXZlID0gVjEsIHNleCA9IFYyNDAsIGFnZSA9IFYyNDIsY291bnRyeSA9IFYyLCBtYXJpdGFsX3N0YXR1cyA9IFY1NywgY2hpbGRyZW4gPSBWNTgsIGVtcGxveW1lbnQgPSBWMjI5LCBlZHVjYXRpb24gPSBWMjQ4LCByaXNrID0gVjc2LCBtb25leSA9IFY3MSwgc2VjdXJpdHkgPSBWNzIsIGdvb2R0aW1lID0gIFY3MywgaGVscCA9IFY3NEIsIHN1Y2Nlc3MgPSBWNzUsIHByb3BlciA9IFY3NywgZW52aXJvbm1lbnQgPSBWNzgsIHRyYWRpdGlvbiA9IFY3OSwgY3JlYXRpdml0eSA9IFY3MCwgZmFtaWx5X2ltcG9ydGFudCA9IFY0LCBmcmllbmRzX2ltcG9ydGFudCA9IFY1LCBsZWlzdXJlX3RpbWUgPSBWNiwgaGFwcGluZXNzID0gVjEwLCBoZWFsdGggPSBWMTEsIHNhdGlzZmFjdGlvbiA9IFYyMywgZnJlZWRvbSA9IFY1NSApCgoKI3NlbGVjdCBvbmx5IHRoZSB2YXJpYWJsZXMgb2YgaW50ZXJlc3QKV1Y2X2RhdGEgPC0gV1Y2X2RhdGEgJT4lCiAgc2VsZWN0KHdhdmUsIHNleCwgYWdlLCBjb3VudHJ5LCBzZXgsIG1hcml0YWxfc3RhdHVzLCBjaGlsZHJlbiwgZW1wbG95bWVudCwgZWR1Y2F0aW9uLCByaXNrLCBtb25leSwgc2VjdXJpdHksIGdvb2R0aW1lLCBoZWxwLCBzdWNjZXNzLCBwcm9wZXIsIGVudmlyb25tZW50LCB0cmFkaXRpb24sIGNyZWF0aXZpdHksIGZhbWlseV9pbXBvcnRhbnQsIGZyaWVuZHNfaW1wb3J0YW50LCBsZWlzdXJlX3RpbWUsIGhhcHBpbmVzcywgaGVhbHRoLCBzYXRpc2ZhY3Rpb24sIGZyZWVkb20pCldWNl9kYXRhCgpgYGAKCgojZGVjb2RlIGRhcmFzZXQgKFdhdmUgNikKYGBge3J9CmNvdW50cnluYW1lcyA9IHJlYWQuY3N2KCIvVXNlcnMvY3Jpc3RpbmFjYW5kaWRvL0RvY3VtZW50cy9HaXRodWIvcmlza193dnMvZGF0YS9XVlMvY291bnRyeW5hbWVzLnR4dCIsIGhlYWRlcj1GQUxTRSxhcy5pcz1UUlVFKQpjb2xuYW1lcyhjb3VudHJ5bmFtZXMpID0gYygiY29kZSIsICJuYW1lIikKV1Y2X2RhdGEkY291bnRyeV9sYWIgPSBjb3VudHJ5bmFtZXMkbmFtZSBbbWF0Y2goV1Y2X2RhdGEkY291bnRyeSwgY291bnRyeW5hbWVzJGNvZGUpXQp0YWJsZShXVjZfZGF0YSRjb3VudHJ5X2xhYikKV1Y2X2RhdGEKYGBgCgojY29tYmluZSB0aGUgMiBkYXRhc2V0IChXYXZlIDYgKyBXYXZlIDUpCmBgYHtyfQpXVjVfZGF0YQpXVjZfZGF0YQpkYXRhID0gcmJpbmQoV1Y1X2RhdGEsIFdWNl9kYXRhKQpkYXRhCmBgYAoKI251bWJlciBvZiBjb3VudHJpZXMKYGBge3J9Cmxlbmd0aCh1bmlxdWUoZGF0YSRjb3VudHJ5X2xhYikpCmBgYAoKI251bWJlciBvZiBwYXJ0aWNpcGFudHMKYGBge3J9Cm5yb3coZGF0YSkKYGBgCiNleGNsdXNpb24gb2YgcGFydGljaXBhbnRzCmBgYHtyfQpkYXRhID0gc3Vic2V0KGRhdGEsIHJpc2sgPiAwICYgc2V4ID4gMCAmIGFnZSA+IDAgJiBlZHVjYXRpb24gPiAwICYgZW1wbG95bWVudCA+IDAgJiBtYXJpdGFsX3N0YXR1cyA+IDAgJiBjaGlsZHJlbiA+PSAwICYgZmFtaWx5X2ltcG9ydGFudCA+IDAgJiBmcmllbmRzX2ltcG9ydGFudCA+IDAgJiBsZWlzdXJlX3RpbWUgPiAwICYgaGFwcGluZXNzID4gMCAmIGhlYWx0aCA+IDAgJiBzYXRpc2ZhY3Rpb24gPiAwICYgZnJlZWRvbSA+IDAgJiBtYXJpdGFsX3N0YXR1cyA+IDAgJiBjcmVhdGl2aXR5ID4gMCAmIG1vbmV5ID4gMCAmIHNlY3VyaXR5ID4gMCAmIGdvb2R0aW1lID4wICYgaGVscCA+IDAgJiBzdWNjZXNzID4gMCwgcmlzayA+IDAgJiBwcm9wZXIgPiAwICYgZW52aXJvbm1lbnQgPiAwICYgdHJhZGl0aW9uID4gMCAmIGVtcGxveW1lbnQgPiAwICYgZWR1Y2F0aW9uID4gMCkgCgogCgpkYXRhCmBgYAojbnVtYmVyIG9mIG1hbGVzIHZzIGZlbWFsZXMgKDEgPSBtYWxlczsgMiA9IGZlbWFsZXMpCmBgYHtyfQp0YWJsZShkYXRhJHNleCkKYGBgCgoKYGBge3J9CiNjcmVhdGUgYSBjYXRlZ29yaWNhbCBhZ2UgdmFyaWFibGUKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U8MjBdPSIxNS0xOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTIwICYgZGF0YSRhZ2UgPDMwXSA9ICIyMC0yOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTMwICYgZGF0YSRhZ2UgPDQwXSA9ICIzMC0zOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTQwICYgZGF0YSRhZ2UgPDUwXSA9ICI0MC00OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTUwICYgZGF0YSRhZ2UgPDYwXSA9ICI1MC01OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTYwICYgZGF0YSRhZ2UgPDcwXSA9ICI2MC02OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTcwICYgZGF0YSRhZ2UgPDgwXSA9ICI3MC03OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTgwXSA9ICI4MCsiCmBgYAoKCiNnZW5kZXIgdmFyaWFibGVzCmBgYHtyfQpkYXRhJHNleFtkYXRhJHNleCA9PSAxXSA8LSAibWFsZSIKZGF0YSRzZXhbZGF0YSRzZXggPT0gMl0gPC0gImZlbWFsZSIKCiNhdmVyYWdlIGFnZSBvZiBwYXJ0aWNpcGFudHMKbWVhbihkYXRhJGFnZSkKYGBgCiNlZHVjYXRpb24gdmFyaWFibGVzIApgYGB7cn0KYXR0YWNoKGRhdGEpCmRhdGEkZWR1Y2F0aW9uX2NhdFtlZHVjYXRpb24gPCAzXSA9ICJpbmNvbXBsZXRlIG9yIG5vIHByaW1hcnkgZWR1Y2F0aW9uIgpkYXRhJGVkdWNhdGlvbl9jYXRbZWR1Y2F0aW9uID4gMiAmIGVkdWNhdGlvbiA8PSA2XSA8LSAibm8gdW5pIgpkYXRhJGVkdWNhdGlvbl9jYXRbZWR1Y2F0aW9uID49IDddIDwtICJ1bmkiCmRldGFjaChkYXRhKQp0YWJsZShkYXRhJGVkdWNhdGlvbikKZGF0YQpgYGAKI3dhdmUgdmFyaWFibGVzCmBgYHtyfQpkYXRhJHdhdmVbZGF0YSR3YXZlID09IDVdIDwtICJXYXZlIDUiCmRhdGEkd2F2ZVtkYXRhJHdhdmUgPT0gNl0gPC0gIldhdmUgNiIKZGF0YQpgYGAKCgojYWdlIHJhbmdlCmBgYHtyfQpyYW5nZShkYXRhJGFnZSkgCmBgYAojcmlzayB0YWtpbmcgRnJlcXVlbmN5CmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCmdncGxvdChkYXRhLCBhZXMoeCA9IHJpc2spKSArCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSAwLjUsIGZpbGwgPSAibGlnaHRibHVlIiwgY29sb3IgPSAiYmxhY2siKSArCiAgbGFicyh4ID0gIlJpc2sgVGFraW5nIiwgeSA9ICJGcmVxdWVuY3kiLCB0aXRsZSA9ICJIaXN0b2dyYW0gb2YgUmlzayBUYWtpbmciKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAojYWdlIGZyZXF1ZW5jeQpgYGB7cn0KZ2dwbG90KGRhdGEsIGFlcyh4ID0gYWdlKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC41LCBmaWxsID0gImxpZ2h0Ymx1ZSIsIGNvbG9yID0gImJsYWNrIikgKwogIGxhYnMoeCA9ICJBZ2UiLCB5ID0gIkZyZXF1ZW5jeSIsIHRpdGxlID0gIkhpc3RvZ3JhbSBvZiBBZ2UgRGlzdHJpYnV0aW9ubiIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCiNhZ2UgdnMgcmlzayB0YWtpbmcKYGBge3J9CgpnZ3Bsb3QoZGF0YSwgYWVzKHggPSBhZ2VjYXQsIHkgPSByaXNrKSkgKwogIGdlb21fYm94cGxvdCgpICsKICBsYWJzKHRpdGxlID0gIkJveHBsb3Qgb2YgUmlzayBhbmQgQWR2ZW50dXJlIGJ5IEFnZSIsCiAgICAgICB4ID0gIkFnZSIsCiAgICAgICB5ID0gIlJpc2sgYW5kIEFkdmVudHVyZSIpICsKICB0aGVtZV9taW5pbWFsKCkKCgpgYGAKI3NleCB2cyByaXNrIHRha2luZwpgYGB7cn0KZ2dwbG90KGRhdGEsIGFlcyhhcy5mYWN0b3Ioc2V4KSwgcmlzaykpKwogIGdlb21fYm94cGxvdCgpCgpgYGAKYGBge3J9CiNkZXNjcmlwdGl2ZSBkYXRhIApzdW1tYXJ5KGRhdGEpCmBgYApgYGB7cn0KI2RhdGEgY2xlYW5pbmc6IGRlbGV0aW9uIG9mIE5BcyAKZGF0YSA9IG5hLm9taXQoZGF0YSkKc3VtbWFyeShkYXRhKQpgYGAKYGBge3J9CiNyaXNrIHZzIGVkdWNhdGlvbgpnZ3Bsb3QoZGF0YSwgYWVzKHJpc2ssIGVkdWNhdGlvbikpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQoKbW9kZWwgPSBsbShyaXNrIH4gZWR1Y2F0aW9uLCBkYXRhID0gZGF0YSkKc3VtbWFyeShtb2RlbCkKYGBgCmBgYHtyfQojcmlzayB2cyBmcmVlZG9tCmdncGxvdChkYXRhLCBhZXMocmlzaywgZnJlZWRvbSkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQoKbW9kZWwxID0gbG0ocmlzayB+IGZyZWVkb20sIGRhdGEgPSBkYXRhKQpzdW1tYXJ5KG1vZGVsMSkKYGBgCmBgYHtyfQojcmlzayBkaXN0cmlidXRpb24gYWNjb3JkaW5nIHRvIFdhdmVzIDUgYW5kIDYgCmdncGxvdChkYXRhLCBhZXMoYXMuZmFjdG9yKHdhdmUpLCByaXNrKSkrCiAgZ2VvbV9ib3hwbG90KCkKYGBgCmBgYHtyfQojcmlzayB2cyBhZ2UKZ2dwbG90KGRhdGEsIGFlcyhyaXNrLCBhZ2UpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKYGBgCgoKYGBge3J9CiNzZWxlY3RlZCAzIGNvdW50cmllczogQW5kb3JyYSwgUm9tYW5pYSwgU3BhaW4KZGF0YTEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiQW5kb3JyYSIsICJSb21hbmlhIiwgIlNwYWluIikpCiMgMyByaXNrIGRpc3RyaWJ1dGlvbiBmb3IgMyBjb3VudHJpZXMKZ2dwbG90KGRhdGExLCBhZXMoYXMuZmFjdG9yKGNvdW50cnlfbGFiKSwgcmlzaykpKwogIGdlb21fYm94cGxvdCgpCmBgYApgYGB7cn0KI2hhcHBpbmVzcyB2cyByaXNrIGRlcGVuZGluZyBvbiBzZXgKZ2dwbG90KGRhdGEsIGFlcyhoYXBwaW5lc3MsIHJpc2ssIGNvbG9yID0gYXMuZmFjdG9yKHNleCkpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgc2UgPSBUUlVFKQpgYGAKYGBge3J9CiMgaGFwcGluZXNzIHZzIHJpc2sgZGVwZW5kaW5nIG9uIGFnZQpnZ3Bsb3QoZGF0YSwgYWVzKGhhcHBpbmVzcywgcmlzaywgY29sb3IgPSBhcy5mYWN0b3IoYWdlY2F0KSkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBzZSA9IFRSVUUpCmBgYAoKCgoKCmBgYAoKCgo=